package com.edais.persistence;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.edais.domain.AppVersionInfo;
import com.edais.domain.Bank;
import com.edais.domain.IdcardInfo;
import com.edais.domain.PushSetting;
import com.edais.domain.UserRecePayCard;
import com.edais.domain.ViewFeedBack;
import com.edais.domain.sina.City;
import com.edais.domain.sina.Province;

public interface OptionMapper {

	/**
	 * 绑定手机号（用户信息表）
	 * 
	 * @return
	 */
	public void setPhoneno(@Param("phoneNo") String phoneNo,
			@Param("id") String id);

	/**
	 * 绑定手机号（用户主表）
	 * 
	 * @return
	 */
	public void modifyMobileValidate(@Param("validate") String validate,
			@Param("mobile") String mobile, @Param("id") String id);

	/**
	 * 设置回款卡号
	 * 
	 * @return
	 */
	public void setIsRecePayCard(UserRecePayCard userRecePayCard);

	/**
	 * 根据id查询银行基本信息
	 * 
	 * @return
	 */
	public List<Bank> getBankDetail(Map<String,Object> map);

	/**
	 * 根据应用版本号、操作系统查询该版本的信息
	 * 
	 * @param appVersion
	 *            应用版本号
	 * @param osName
	 *            操作系统
	 * @return
	 * @throws Exception
	 */
	public AppVersionInfo getAppVersionInfoCurrent(
			@Param("appVersion") String appVersion,
			@Param("osName") String osName) throws Exception;

	/**
	 * 根据操作系统查询最新版本的信息
	 * 
	 * @param osName
	 *            操作系统
	 * @return
	 * @throws Exception
	 */
	public AppVersionInfo getAppVersionInfoNew(String osName) throws Exception;

	/**
	 * 获取两个版本之间更新类型最大值：1-无需升级，2-可选升级,3-必须升级
	 * 
	 * @param idCurrent
	 *            当前版本号
	 * @param idNew
	 *            最新版本号
	 * 
	 * @return
	 * @throws Exception
	 */
	public String getAppVersionUpdateType(@Param("osName") String osName,
			@Param("idCurrent") String idCurrent, @Param("idNew") String idNew);
	
	public void updateIdCardValidate(@Param("validate") String validate,
		@Param("allowLend") String allowLend, @Param("belenderTime") String belenderTime,
		@Param("id") String id);
	
	public void insertIdCardInfo(IdcardInfo idCardInfo);
	
	public void insertView(ViewFeedBack viewMsg);

	public String getThemeId(@Param("key") String key);
	
	public void setPushSwitchOn(@Param("switchFlg1") String switchFlg1, 
		@Param("userId") String userId,@Param("switchFlg2") String switchFlg2,@Param("themeId") String themeId);
	
	public void setPushSwitchOff(@Param("userId") String userId, 
		@Param("themeId") String themeId,@Param("switchFlg1") String switchFlg1,@Param("switchFlg2") String switchFlg2);
	
	public List<PushSetting> getSettingStus(Map<String, Object> map);
	
	public List<Province> getProvinces();
	public List<City> getCitys();
	
	public Province getProvinceById(String provinceId);
	public City getCityById(String cityId);
	public Bank getBankCodeById(Map<String, String> map);
	public void addPayCard(UserRecePayCard userRecePayCard);
	public UserRecePayCard getBankCardId(UserRecePayCard userRecePayCard);
	public void updateBankCardInfo(Map<String, String> map);
	public String getSinaBindingReqSeqSeq();
	public void modifyPayPwd(Map<String, String> map);
	public void addLoanApplication(Map<String, String> map);
	
	public List<City> getCityByProvince(String provinceId);
	
	public City getCityByCode(String cityCode);

}
